package powerdev.negocio;

import java.sql.Time;
import java.util.Collection;
import java.util.Date;

import powerdev.dao.AlquilerDAO;
import powerdev.excepcion.DAOExcepcion;
import powerdev.modelo.Alquiler;

public class GestionAlquiler {
	
	public void insertarAlquiler(Date fe_Dia, Time nu_HoraI, Time nu_HoraF, Double ss_Alquiler, Double ss_Servicio, 
			Double ss_Total, Boolean fl_EstadoPago, int co_Cancha, int co_Persona, boolean fl_Estado) throws DAOExcepcion {

		Alquiler modelo = new Alquiler();
		modelo.setFe_Dia(fe_Dia);
		modelo.setNu_HoraI(nu_HoraI);
		modelo.setNu_HoraF(nu_HoraF);
		modelo.setSs_Alquiler(ss_Alquiler);
		modelo.setSs_Servicio(ss_Servicio); 
		modelo.setSs_Total(ss_Total);
		modelo.setFl_EstadoPago(fl_EstadoPago);
		modelo.setFl_Estado(fl_Estado);

		AlquilerDAO dao = new AlquilerDAO();
		
		Collection<Alquiler> ListaAlquiler = dao.buscarRefAlquiler(fe_Dia, nu_HoraI, nu_HoraF, co_Cancha); 
		System.out.println(ListaAlquiler.size());
		
		if (ListaAlquiler.isEmpty()) {
			dao.insertar(modelo, co_Cancha, co_Persona);
			System.out.println("Registro satisfactorio");
		}
		else {
			throw new  DAOExcepcion("La cancha seleccionada ya fue alquilada");
		}
		
	}
	
	public void ModificarAlquiler(int co_Alquiler, Date fe_Dia, Time nu_HoraI, Time nu_HoraF, Double ss_Alquiler, Double ss_Servicio, 
			Double ss_Total, Boolean fl_EstadoPago, int co_Cancha, int co_Persona, boolean fl_Estado) throws DAOExcepcion {

		Alquiler modelo = new Alquiler();
		modelo.setCo_Alquiler(co_Alquiler);
		modelo.setFe_Dia(fe_Dia);
		modelo.setNu_HoraI(nu_HoraI);
		modelo.setNu_HoraF(nu_HoraF);
		modelo.setSs_Alquiler(ss_Alquiler);
		modelo.setSs_Servicio(ss_Servicio); 
		modelo.setSs_Total(ss_Total);
		modelo.setFl_EstadoPago(fl_EstadoPago);
		modelo.setFl_Estado(fl_Estado);

		AlquilerDAO dao = new AlquilerDAO();
		dao.actualizar(modelo, co_Cancha, co_Persona);
	}
	
	public void AnularAlquiler(int co_Alquiler, boolean fl_Estado) throws DAOExcepcion {

		AlquilerDAO dao = new AlquilerDAO();
		dao.Anular_Alquiler(co_Alquiler, fl_Estado);
		
	}
	
	public Alquiler obtener(int co_Alquiler) throws DAOExcepcion {
		Alquiler vo = new Alquiler();
		AlquilerDAO dao = new AlquilerDAO();
		vo = dao.obtener(co_Alquiler);
		return vo;
	}
	
	public Collection<Alquiler> Listar() throws DAOExcepcion {         
		AlquilerDAO dao = new AlquilerDAO();                          
		return dao.listar();       
		} 
	
	public Collection<Alquiler> Listar(int co_Local, String fe_Inicio, String fe_Fin) throws DAOExcepcion {         
		AlquilerDAO dao = new AlquilerDAO();                         
		return dao.listar(co_Local, fe_Inicio, fe_Fin);      
		} 

	public void ActualizarMontoServicioAlquiler(double ss_Servicio, double ss_Total, int co_Alquiler) throws DAOExcepcion {

		AlquilerDAO dao = new AlquilerDAO();
		dao.actualizarMontoAlquiler(ss_Servicio, ss_Total, co_Alquiler);
		
	}
	
    
}
